package com.iyue.util;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.StringUtils;

import com.iyue.Constant;

/**
 * 《手机号码》管理类
 * 
 * @author 孙晓晔
 * @version $Id: Mobile.java,v 1.2 2010/12/23 14:59:54 fresh Exp $
 */
public final class Mobile {

	/**
	 * 通过白名单获取用户手机号码
	 * 
	 * @param request
	 * @return
	 */
	public static String cmcc(HttpServletRequest request) {
		String mobile = request.getHeader(Constant.X_UP_CALLING_LINE_ID);
		if (mobile == null) {
			return null;
		}

		// String ip = IpSafe.getIp(request);
		// if (!IpSafe.isCmwap(ip)) {
		// return null;
		// }

		String ret = StringUtils.substring(mobile, -11);
		if (Mobile.isCmcc(ret)) {
			return ret;
		}

		return null;
	}

	/**
	 * 判断是否为移动手机号码
	 * 
	 * @param mobile
	 *            手机号码
	 * @return
	 */
	public static boolean isCmcc(String mobile) {
		if (StringUtils.isBlank(mobile)) {
			return false;
		}

		if (mobile.matches("13[4-9]\\d{8}")) {
			return true;
		}

		if (mobile.matches("14[7-9]\\d{8}")) {
			return true;
		}
		if (mobile.matches("15[012789]\\d{8}")) {
			return true;
		}

		if (mobile.matches("18[278]\\d{8}")) {
			return true;
		}

		return false;
	}

	/**
	 * 非移动手机用户
	 * 
	 * @param mobile
	 * @return
	 */
	public static boolean isGuest(String mobile) {
		if (isCmcc(mobile)) {
			return false;
		}

		return true;
	}
}
